package com.cd.university.common.lru;

import java.util.Map;
import java.util.Set;

/**
 * 实现了LRU的工厂类
 * @author 陈栋
 * @create 2021/12/11 16:55
 */
public interface LRUCacheFactory<K,V>{

    /**
     * 创建一个支持LRU算法的类
     * @param capacity 初始容量
     * @return LRUCacheFactory实现类
     */
    LRUCacheFactory createLRUCache(int capacity);

    /**
     * 修改实现了LRU算法的缓存的容量
     * @return LRUCacheFactory实现类
     */
    /**
     * 修改缓存的容量
     * @param capacity 新的容量
     * @return LRUCacheFactory实现类
     */
    LRUCacheFactory modifyCapacity(int capacity);

    V get(K key);

    V put(K key, V value);

    V remove(Object key);

    int size();

    Set<Map.Entry<K,V>> entrySet();
}
